Systems and methods for principled bias reduction in production speech models

ABSTRACT

Described herein are systems and methods to identify and address sources of bias in an end-to-end speech model. In one or more embodiments, the end-to-end model may be a recurrent neural network with two 2D-convolutional input layers, followed by multiple bidirectional recurrent layers and one fully connected layer before a softmax layer. In one or more embodiments, the network is trained end-to-end using the CTC loss function to directly predict sequences of characters from log spectrograms of audio. With optimized recurrent layers and training together with alignment information, some unwanted bias induced by using purely forward only recurrences may be removed in a deployed model.

CROSS-REFERENCE To RELATED APPLICATION

This application claims the priority benefit under 35 USC § 119(e) to U.S. Provisional Patent Application No. 62/463,547 (Docket No. 28888-2108P), filed on 24 Feb. 2017, entitled “PRINCIPLED BIAS REDUCTION IN PRODUCTION SPEECH MODELS”, and listing Adam Coates, Jiaji Huang, Hairong Liu, Zhenyao Zhu, Rewon Child, Eric Battenberg, Heewoo Jun, Anuroop Sriram, Vinay Rao, Sanjeev Satheesh, and Atul Kumar as inventors. The aforementioned patent document is incorporated by reference herein in its entirety.

BACKGROUND OF THE INVENTION A. Technical Field

The present disclosure relates generally to systems and methods for computer learning that can provide improved computer performance, features, and uses.

B. Background

End-to-end trained speech models have achieved state of the art recently. However, low latency transcription imposes constraints on the model that puts end-to-end models back in the high bias regime. It is desirable to identify and address sources of bias in the system, and therefore to cover much of the gap from non-productionizable models.

Accordingly, what is needed are systems and methods for end-to-end speech model with reduced bias.

BRIEF DESCRIPTION OF THE DRAWINGS

References will be made to embodiments of the invention, examples of which may be illustrated in the accompanying figures. These figures are intended to be illustrative, not limiting. Although the invention is generally described in the context of these embodiments, it should be understood that it is not intended to limit the scope of the invention to these particular embodiments. Items in the figures are not to scale.

FIG.1 depicts spectrograms of a same audio segment post-processed with FIG. 1A, FIG. 1B, FIG. 1C, and FIG. 1D corresponding to two different methods, according to embodiments of the present document.

FIG. 2 depicts a process for input modeling with PCEN normalization, according to embodiments of the present document.

FIG. 3 depicts normalization bias of log compression with FIG. 3A corresponding to homogeneous speech data set and FIG. 3B corresponding to inhomogeneous real-world dataset that is distorted with various channel and acoustical effects, according to embodiments of the present document.

FIG. 4 depicts contexts of different structures, according to embodiments of the present document.

FIG. 5 depicts a detailed context view of Latency Constrained Bidirectional GRU (LC-BGRU), according to embodiments of the present document.

FIG. 6 depicts a process for speech recognition with LC-BGRU structure, according to embodiments of the present document.

FIG. 7A and FIG. 7B depict Character Error Rate (CER) and serving latency, respectively, on a dev-set as a function of lookahead and the number of LC-BGRU layers, according to embodiments of the present document.

FIG. 8 depicts CER of running Bidirectional Gated Recurrent Unit (BGRU) in a Latency constrained BGRU (LC-BGRU) way with different context sizes (C) and lookahead time steps, according to embodiments of the present document.

FIG. 9 depicts the states and the forward-backward transitions for the label ‘CAT’, according to embodiments of the present document.

FIG. 10 depicts processes for an Expectation-Maximization (EM) approach to train a GramCTC model, according to embodiments of the present document.

FIG. 11 depicts processes for an alternative approach to train a GramCTC model, according to embodiments of the present document.

FIG. 12A depicts cross correlation between alignments estimated by three reference models forward, LC-BGRU and bidirectional, according to embodiments of the present document.

FIG. 12B depicts CER on dev set at various epoch numbers with alignments applied from a bidirectional model to the pre-training of a forward model, according to embodiments of the present document.

FIG. 12C depicts training cost at various epoch numbers, by warm-starting a LC-BGRU model from pre-training using different alignments, according to embodiments of the present document.

FIG. 12D depicts CER on dev set for the models trained in the LC-BGRU model in FIG. 12C, according to embodiments of the present document.

FIG. 13 depicts a comparison between a baseline architecture and a proposed model architecture, according to embodiments of the present document.

FIG. 14 depicts a simplified block diagram of a computing device/information handling system, in accordance with embodiments of the present document.

DETAILED DESCRIPTION OF EMBODIMENTS

In the following description, for purposes of explanation, specific details are set forth in order to provide an understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these details. Furthermore, one skilled in the art will recognize that embodiments of the present invention, described below, may be implemented in a variety of ways, such as a process, an apparatus, a system, a device, or a method on a tangible computer-readable medium.

Components, or modules, shown in diagrams are illustrative of exemplary embodiments of the invention and are meant to avoid obscuring the invention. It shall also be understood that throughout this discussion that components may be described as separate functional units, which may comprise sub-units, but those skilled in the art will recognize that various components, or portions thereof, may be divided into separate components or may be integrated together, including integrated within a single system or component. It should be noted that functions or operations discussed herein may be implemented as components. Components may be implemented in software, hardware, or a combination thereof.

Furthermore, connections between components or systems within the figures are not intended to be limited to direct connections. Rather, data between these components may be modified, re-formatted, or otherwise changed by intermediary components. Also, additional or fewer connections may be used. It shall also be noted that the terms “coupled,” “connected,” or “communicatively coupled” shall be understood to include direct connections, indirect connections through one or more intermediary devices, and wireless connections.

Reference in the specification to “one embodiment,” “preferred embodiment,” “an embodiment,” or “embodiments” means that a particular feature, structure, characteristic, or function described in connection with the embodiment is included in at least one embodiment of the invention and may be in more than one embodiment. Also, the appearances of the above-noted phrases in various places in the specification are not necessarily all referring to the same embodiment or embodiments.

The use of certain terms in various places in the specification is for illustration and should not be construed as limiting. A service, function, or resource is not limited to a single service, function, or resource; usage of these terms may refer to a grouping of related services, functions, or resources, which may be distributed or aggregated.

The terms “include,” “including,” “comprise,” and “comprising” shall be understood to be open terms and any lists the follow are examples and not meant to be limited to the listed items. Any headings used herein are for organizational purposes only and shall not be used to limit the scope of the description or the claims. Each reference mentioned in this patent document is incorporate by reference herein in its entirety.

Furthermore, one skilled in the art shall recognize that: (1) certain steps may optionally be performed; (2) steps may not be limited to the specific order set forth herein; (3) certain steps may be performed in different orders; and (4) certain steps may be done concurrently.

It shall be noted that any experiments and results presented herein are provided by way of illustration and were performed under specific conditions using a specific embodiment or embodiments; accordingly, neither these experiments nor their results shall be used to limit the scope of the disclosure of the current patent document.

A. Introduction

Deep learning has helped speech systems attain very strong results on speech recognition tasks for multiple languages. One could say therefore that the automatic speech recognition (ASR) task may be considered ‘solved’ for any domain where there is enough training data. However, production requirements such as supporting streaming inference bring in constraints that dramatically degrade the performance of such models—typically because models trained under these constraints are in the underfitting regime and can no longer fit the training data as well. Underfitting is the first symptom of a model with high bias. In this document, it is aimed to build deployable model architecture with low bias because: 1) it allows to serve the very best speech models and 2) identify better architectures to improve generalization performance, by adding more data and parameters.

Typically, bias is induced by the assumptions made in hand engineered features or workflows, by using surrogate loss functions (or assumptions they make) that are different from the final metric, or maybe even implicit in the layers used in the model. Sometimes, optimization issues may also prevent the model from fitting the training data as well—this effect is difficult to distinguish from underfitting. In this document, various approaches to resolve optimization issues are explored.

Sources of Bias in Production Speech Models

End-to-end models typically tend to have a lower bias because they have fewer hand engineered features. Therefore, a similar model is used in this disclosure as a baseline to start. In embodiments, the model is a recurrent neural network with two 2D-convolutional input layers, followed by multiple bidirectional recurrent layers (unidirectional for low latency ASR) and one fully connected layer before a softmax layer. In embodiments, the network is trained end-to-end using the Connectionist Temporal Classification (CTC) loss function, to directly predict sequences of characters from log spectrograms of audio. The following assumptions are implicit, that contribute to the bias of the model:

1. Input modeling: Typically, incoming audio is processed using energy normalization, spectrogram featurization, log compression, and finally, feature-wise mean and variance normalization. FIG. 1 depicts spectrograms of a same audio segment post-processed with different methods according to embodiments of the present document. In FIG. 1, each row shows spectrograms of the same audio segment post-processed with two different methods. The horizontal axis is time (10 millisecond (ms)/step) and the vertical axis is frequency bins. The left column (FIG. 1A and FIG. 1C) is generated by applying log. The right column (FIG. 1B and FIG. 1D) is with per-channel energy normalization (PCEN) with 0.015 and 0.08 smoothing coefficients. FIG. 1 shows that log spectrograms can have a high dynamic range across frequency bands (FIG. 1A) or have some bands missing (FIG. 1C). In embodiments, the disclosure investigates how the PCEN layer can parametrize and learn improved versions from these transformations, which simplifies the task of subsequent 2D convolutional layers.

2. Architectures for streaming inference: English ASR models greatly benefit from using information from a few time frames into the future. In embodiments, in the baseline model, this is enabled by using bidirectional layers, which are impossible to deploy in a streaming fashion, because the backward looking recurrences can be computed only after the entire input is available. Making the recurrences forward-only immediately removes this constraint and makes these models deployable, but also make the assumption that no future context is useful. In embodiments, this disclosure shows the effectiveness of Latency Constrained Bidirectional RNNs in controlling the latency while still being able to include future context.

3. Target modeling: CTC models that output characters assume conditional independence between predicted characters given the input features—while this approximation makes maximum likelihood training tractable, this induces a bias on English ASR models and imposes a ceiling on performance. While CTC can easily model commonly co-occurring n-grams together, it is impossible to give roughly equal probability to many possible spellings when transcribing unseen words, because the probability mass has to be distributed between multiple time steps, while assuming conditional independence. In embodiments, this disclosure shows how GramCTC finds the label space where this conditional independence is easier to manage.

4. Optimization issues: Additionally, the CTC loss is notoriously unstable, despite making sequence labeling tractable, since it is forcing the model to align the input and output sequences, as well as recognize output labels. Making the optimization stable can help learn a better model with the same number of parameters. In embodiments, this disclosure shows two effective ways of using alignment information to improve the rate of convergence of these models.

The rest of this document is organized as follows: Section B introduces some related work that address each of the issues out-lined above. Sections C, D, E, and F investigate solutions for addressing the corresponding issue, and study trade-offs in their application. In section G, the disclosure presents experiments showing the impact of each component independently, as well as the combination of all of them. Some results are also discussed in Section G.

B. Some Related Work

The most direct way to remove all bias in the input modeling is probably learning a sufficiently expressive model directly from raw waveforms by parameterizing and learning these transformations, as disclosed by Sainath et al., Learning the speech front-end with raw waveform CLDNNs, INTERSPEECH, 2015, and by Zhu et al., Leaning multiscale features directly from waveforms, INTERSPEECH, 2016. These works suggest that non-trivial improvement in accuracy purely from modeling the raw waveform is hard to obtain without a significant increase in the compute and memory requirements. Wang et al. (Trainable frontend for robust and far-field keyword spotting, arXiv:1607.05666, 2016a) introduced a trainable per-channel energy normalization layer (PCEN) that parametrizes power normalization as well as the compression step, which is typically handled by a static log transform.

Lookahead convolutions have been proposed for streaming inference by Wang et al., Lookahead convolution layer for unidirectional recurrent neural networks, 2016b. Latency constrained Bidirectional recurrent layers (LC-BRNN) and Context sensitive chunks (CSC) have also been proposed by Chen and Huo (Training deep bidirectional LSTM acoustic model for LVCSR by a context-sensitive-chunk BPTT approach, IEEE/ACM Transactions on Audio, Speech, and Language Processing, 24(7):1185-1193, 2016) for tractable sequence model training but not explored for streaming inference. Time delay neural networks (by Peddinti et al., A time delay neural network architecture for efficient modeling of long temporal contexts, INTERSPEECH, pages 3214-3218, 2015) and Convolutional networks are also options for controlling the amount of future context.

Alternatives have been proposed to relax the label independence assumption of the CTC loss-Attention models (by Bandanau et al., Neural machine translation by jointly learning to align and translate, 3rd International Conference on Learning Representations (ICLR2015); and by Chan et al., Listen, attend and spell: A neural network for large vocabulary conversational speech recognition, 2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)), global normalization (by Collobert et al., Wav2letter: an end-to-end ConvNet-based Speech Recognition System, arXiv preprint arXiv:1609.03193, 2016) and segmental RNNs (by Lu et al., Segmental recurrent neural networks for end-to-end speech recognition, INTERSPEECH, 2016) and more end-to-end losses like lattice free MMI (Maximum Mutual Information) (by Povey et al., Purely Sequence-Trained Neural Networks for ASR Based on Lattice-Free MMI, INTERSPEECH, 2016).

CTC model training has been shown to be made more stable by feeding shorter examples first, like SortaGrad (by Amodei et al., Deep Speech 2: End-to-end speech Recognition in English and Mandarin, arXiv preprint arXiv:1512.02595, 2015) and by warm-starting CTC training from a model pre-trained by Cross-Entropy (CE) loss (using alignment information) (by Sak et al., Fast and Accurate Recurrent Neural Network Acoustic Models for Speech Recognition, arXiv preprint arXiv:1507.06947, 2015). SortaGrad additionally helps to converge to a better training error.

C. Embodiments in Input Modeling

ASR systems often have a vital front-end that involves power normalization, mel spectrogram calculation followed by log compression, mean and variance normalization apart from other operations. This section shows that, in embodiments, a wide variety of speech input can be better modeled by replacing this workflow with a trainable frontend. FIG. 2 depicts a process for input modeling with PCEN normalization, according to embodiments of the present document. Raw voice data are received in step 205. Power (volume) normalization, mel spectrogram and feature normalization are implemented in steps 210, 215 and 220 respectively. In step 225, a trainable per-channel energy normalization (PCEN), instead of a log compression, is implemented.

While spectrograms strike an excellent balance between compute and representational quality, they have a high dynamic range (FIG. 1) and are susceptible to channel effects such as room impulse response, Lombard effects and background noises. To alleviate the first issue, they are typically log compressed, and then mean and variance normalized. However, this only moderately helps with all the variations that can arise in the real world as described before, and the network is expected to learn to be robust to these effects by exposing it to such data. By relieving the network of the task of speech and channel normalization, it can devote more of its capacity for the actual speech recognition task. In embodiments, the traditional log compression and power normalization steps are replaced with a trainable PCEN front-end, which performs:

$\begin{matrix} {{y\left( {t,f} \right)} = {\left( {\frac{x\left( {t,f} \right)}{\left( {ɛ + {M\left( {t,f} \right)}} \right)^{\alpha}} + \delta} \right)^{r} - \delta^{r}}} & (1) \end{matrix}$

where x is the input spectrogram, M is the causal energy estimate of the input, and δ, α, r, ε are tunable per-channel parameters. The motivation for this is two-fold. It first normalizes the audio using the automatic gain controller (AGC), x/M^(α), and further compresses its dynamic range using (·+δ)^(r)−δ^(r). The latter is designed to approximate an optimized spectral subtraction curve which helps to improve robustness to background noises. Clearly, FIG. 1 shows that PCEN effectively normalizes various speaker and channel effects.

PCEN was originally motivated to improve keyword spotting systems, but experiments in this document show that it helps with general ASR tasks, yielding a noticeable improvement in error rates over the baseline (as shown in Table 3). The training data set which was curated in-house consists of speech data collected in multiple realistic settings. The PCEN front-end gave the most improvement in the far-field validation portion where there was an absolute ˜2 WER reduction. To demonstrate that this was indeed reducing bias, it was tried on WSJ, a much smaller and homogeneous dataset. No improvement was observed on the holdout validation set as shown in FIG. 3A as the read speech is extremely uniform and the standard front-end suffices. FIG. 3 depicts holdout validation CERs with log spectrogram (305 and 315) and PCEN spectrogram (310 and 320). FIG. 3B clearly shows the normalization bias of log compression on the inhomogeneous real-world dataset 315, which is distorted with various channel and acoustical effects.

D. Embodiments in Latency Controlled Recurrent layers

Considering a typical use-case for ASR systems under deployment, audio is typically sent over the network in packets of short durations (e.g., 50-200 ms). Under these streaming conditions, it is imperative to improve accuracy and reduce the latency perceived by end-users. It's observed that users tend to be most perceptive to the time between when they stop speaking and when the last spoken word presents to them. As a proxy for perceived latency, last-packet-latency, defined as the time taken to return the transcription to the user after the last audio packet arrived at the server, was measured. In embodiments, real-time-factor (RTF) has also been commonly used to measure the speed of an ASR system, but it is in most cases only loosely correlated with latency. While a RTF<1 is necessary for a streaming system, it's far from sufficient. As one example RTF does not consider the non-uniformity in processing time caused by (stacked) convolutions in neural networks.

In embodiments, to tackle the bias induced by using purely forward only recurrences in deployed models, several structures are examined. The structures are illustrated in FIG. 4, which includes Bidirectional RNN 405, Chunked RNN 410, Chunked RNN with overlapping 415, and latency-controlled bidirectional RNNs (in the case of this document, LC-BGRU 420 as the recurrent layers employ GRU cells) and lookahead convolutions (LA-Cony) 425. In FIG. 4, solid arrows represent forward recurrences, dash arrows represent backward recurrences, and solid lines represent convolution windows. Furthermore, states are reset to zero at the start of each arrow.

An LA-Cony layer learns a linear weighted combination (convolution) of activations in the future ([t+1,t+C]) to compute activations for each neuron t, with a context size C, as shown in 425. The LA-Cony is placed above all recurrent layers.

FIG. 5 depicts a detailed context view of a LC-BGRU. In embodiments, in a LC-BGRU layer, an utterance 505 is uniformly divided into several overlapping chunks 510, each of which can be treated as an independent utterance and computed with bidirectional recurrences. Each chunk 510 may comprise a first section 515 with a predetermined time steps and a section of lookahead 520.

FIG. 6 depicts a process for a speech recognition model with LC-BGRU structure, according to embodiments of the present document. Details of the model structure may be referred to FIG. 11. In step 605, an utterance X with length L is received. x_(i) represents the i^(th) frame of X. In step 610, X is divided into overlapping chunks that are each of a fixed context size c_(W). The chunks are divided uniformly and each chunk has an overlapped step size c_(S) less than the fixed context size c_(W). In step 615, the forward recurrences process X sequentially as x₁, . . . , x_(L). Backward recurrences start processing (620) the first chunk x₁, . . . , x_(c) _(W) , then move (625) ahead by chunk/step-size c_(S) (a number less than c_(W)) to independently process the second chunk x_(c) _(S) , . . . , x_(c) _(W) _(c) _(S) , and so on (until the last chunk). In relation to the first chunk x₁, . . . , x_(CW), x_(CS), . . . , x_(CW+CS) are referred as the lookahead. Hidden-states h_(b) of the backward recurrences are reset between each chunk, and consequently h_(b) ₁ , . . . , h_(b) _(cS) produced from each chunk are used in calculating (630) the final output of the LC-BGRU layer.

FIG. 4 illustrates this operation and compares it with other methods which are proposed for similar purposes. The forward-looking and backward-looking units in this LC-BGRU layer receive the same affine transformations of inputs. It was found that this helps reduce computation and save parameters, without affecting the accuracy adversely. The outputs are then concatenated across features at each time step before being fed into the next layer.

1. Accuracy and Serving Latency

Character Error Rate (CER) and last-packet-latency of using LA-Conv and LC-BGRU are compared, along with those of forward-GRU and Bidirectional GRU for references. In embodiments, context size is fixed as 30 time steps for both LA-Conv and LC-BGRU, and lookahead time step ranges from 5 to 25 every 5 steps for LC-BGRU. For latency experiments, the packet size was fixed at 100 ms, and one packet was sent every 100 ms from the client. 10 simultaneous streams were sent to simulate a system under moderate load. FIGS. 7A and 7B depict Character Error Rate (CER) and serving latency respectively on a dev-set as a function of lookahead and the number of LC-BGRU layers, according to embodiments of the present document. As shown in FIG. 7A, while LA-Conv reduces almost half of the gap between forward GRU and bidirectional GRU, a model with three LC-BGRUs with lookahead of 25 each (yellow line) performs as well as bidirectional GRU (green line). The accuracy improves, but the serving latency increases exponentially as LC-BGRU layers are stacked, because this increases the effective context much like in convolutional layers. Taking both accuracy and serving-latency into consideration, the final models use 1 LC-BGRU layer, with a lookahead of 20 time steps (400ms) and step-size of 10 time steps (200ms). It shall be noted that 1 time step corresponds to 10ms of the raw-input spectrogram, and then striding in the convolution layers makes that 20ms.

2. Embodiments of Loading BGRU as LC-BGRU

Since Bidirectional GRUs (BGRU) can be considered as an extreme case of LC-BGRUs with infinite context (as long as the utterance length), it is interesting to explore whether a trained bidirectional GRU model could be loaded as an LC-BGRU, so that LC-BGRUs don't have to be trained from scratch. However, it was found that loading a model with 3 stacked bidirectional GRUs as stacked LC-BGRUs resulted in significant degradation in performance compared to both the bidirectional baseline and a model trained with stacked LC-BGRUs across a large set of chunk sizes and lookaheads.

In embodiments, the performance of the model can be improved, if the input at each layer is instead chopped up to a fixed size c_(W), such that it is smaller than the effective context. An LC-BGRU layer is ran on an input of length c_(W), then the input is strided by c_(S), the last (c_(W)−c_(S)) outputs are discarded, and the layer over the strided input is re-ran. Between each iteration the forward recurrent states are copied over, but the backward recurrent states are reset each time. The effect of using various c_(W) and c_(S) is shown in FIG. 8. This approach is much more successful in that with c_(W)≥300 time steps and c_(S)>150 time steps, being able to obtain nearly identical error rates to the Bidirectional GRU. With this selection of c_(W) and c_(S), the network does twice as much computation as would otherwise be needed, and it also has latencies that are unacceptable for streaming applications. However, it does have the advantage of running bi-directional recurrent layers over arbitrarily long utterances in a production environment at close to no loss in accuracy.

E. Loss Function Embodiments

The conditional independence assumption made by CTC forces the model to learn unimodal distributions over predicted label sequences. GramCTC (by Liu et al., Gram-CTC: Automatic unit selection and target decomposition for sequence labelling, arXiv preprint arXiv:1703.00096, 2017, and cross-reference to U.S. patent application Ser. No. 15/698,593 (Docket No. 28888-2107), filed on 7 Sep. 2017, entitled “SYSTEMS AND METHODS FOR AUTOMATIC UNIT SELECTION AND TARGET DECOMPOSITION FOR SEQUENCE LABELLING”, which is incorporated by reference herein in its entirety) attempts to find a transformation of the output space where the conditional independence assumption made by CTC is less harmful. Specifically, GramCTC attempts to predict word-pieces, whereas traditional CTC based end-to-end models aim to predict characters.

In embodiments, GramCTC learns to align and decompose target sequences into word-pieces, or n-grams. N-Grams allow addressing the peculiarities of English spelling and pronunciation, where word-pieces have a consistent pronunciation, but characters don't. For example, when the model is unsure how to spell a sound, it can choose to distribute probability mass roughly equally between all valid spellings of the sound, and let the language model decide the most appropriate way to spell the word. This is often the safest solution, since language models are typically trained on significantly larger datasets and see even the rarest words. GramCTC is a drop-in replacement for the CTC loss function, with the only requirement being a pre-specified set of n-grams G. In embodiments, all unigrams and high-frequency bi-grams and tri-grams are included, composing a set of 1200 n-grams.

1. Embodiments of Forward-backward Process of GramCTC

The training process of GramCTC is very similar to CTC. The main difference is that multiple consecutive characters may form a valid gram. Thus, the total number of states in the forward-backward process is much larger, as well as the transition between these states.

FIG. 9 illustrates partially the dynamic programming process for the target sequence ‘CAT’. Here it is supposed that G contains all possible uni-grams and bi-grams. Thus, for each character in ‘CAT’, there are three possible states associated with it: 1) the current character, 2) the bi-gram ending in current character, and 3) the blank after current character. There is also one blank at beginning. In total there are 10 states.

2. GramCTC vs CTC

GramCTC effectively reduces the learning burden of ASR network in two ways: 1) it decomposes sentences into pronunciation-meaningful n-grams, and 2) it effectively reduces the number of output time steps. Both aspects simplify the rules the network needs to learn, thus reducing the required network capacity of the ASR task. Table 1 compares the performances between CTC and GramCTC using the same network. There are some interesting distinctions. First, the CERs of GramCTC are similar or even worse than CTC; however, the WERs of GramCTC are always significantly better than CTC. This is probably because Gram-CTC predicts in chunks of characters and the characters in the same chunk are dependent, thus more robust. Secondly, it was also observed that the performance on the dev set is relatively worse than that on the train holdout. The dev dataset is not drawn from the same distribution of the training data—this exhibits the potential for GramCTC to overfit even a large dataset.

Table 2 compares the training efficiency and the performance of trained model with GramCTC on two time resolutions, 2 and 4. By striding over the input at a faster rate in the early layers, the time steps of later layers are effectively reduced, and the training time is reduced in half. From stride 2 to stride 4, the performance also improves a lot probably because larger n-grams align with larger segments of utterance, and thus need lower time resolution.

TABLE 1 Comparison of CTC and GramCTC Train Train Holdout Dev Loss CER WER CER WER CER WER CTC 4.38 12.41 4.60 12.89 11.64 12.41 Gram CTC 4.33 10.42 4.66 11.37 12.03 27.1

TABLE 2 Performances and training efficiency of GramCTC with different model strides Loss WER Epoch Time (hours) Stride 2 4 2 4 Gram CTC 21.46 18.27 18.3 9.6

F. Optimization Embodiments

Removing optimization issues has been a reliable way of improving performance in deep neural networks. In embodiments, several optimization methods have been explored especially for training recurrent networks. LayerNorm, Recurrent batch norm, and Norm-Prop were tried without much success. Additionally, special care is taken to optimize layers properly, and SortaGrad is also employed.

CTC training could be suffering from optimization issues. In embodiments, by providing alignment information during training, CTC training could be made more stable. This section studies how alignment information can be used effectively.

1. Embodiments of Forward-backward Process of GramCTC

Using alignment information for training CTC models appears counter intuitive since CTC marginalizes over all alignments during training. However, the CTC loss is hard to optimize because it simultaneously estimates network parameters and alignments. In embodiments, to simplify the problem, an Expectation-Maximization (EM) like approach, as shown in FIG. 10, to train a GramCTC model is proposed. In step 1005, an expected log-likelihood is computed in the E-step, by marginalizing over the posterior of alignments; in step 1010, the model parameters are refined in the M-step by maximizing the expected log-likelihood. However, it is infeasible to compute the posterior for all the alignments, and it is approximated by taking only the most probable alignment. One step of EM can be considered as the pre-training approach of using alignment information. FIG. 11 depicts processes for an alternative approach to train a GramCTC model, according to embodiments of the present document. In step 1105, the GramCTC model is first trained with one or more most likely alignments (which simplifies training with a Cross-Entropy (CE) loss for a few epochs), followed by training with the CTC loss in step 1110.

In embodiments, using the alignment information, a single model is trained simultaneously using a weighted combination of the CTC loss and the CE loss. In embodiments, the CTC loss and the CE loss has equal weight.

FIG. 12C shows the training curves of the same model architecture with pure CTC training, pre-training and joint training with alignment information from different source models. In the case of pre-training, alignment information is not provided at the 6-th epoch, corresponding to the shift in the training curve. It was shown that the final training losses of both pre-trained and joint-trained models are all lower than the pure CTC trained model, showing the effectiveness of this optimization trick. Additionally, joint-training and pre-training are on par in terms of training, so joint-training is preferred to avoid multi-phase training. The corresponding CER on dev set is presented in FIG. 12D.

2. Source of Alignments

It is important to understand how accurate the alignment information needs to be, since different models have differing alignments according to the architecture and training methods.

Alignments are estimated from three “reference” models (models with forward only GRU, LC-BGRU and bidirectional GRU layers, all trained with several epochs of CTC minimization), and present the cross correlation between the alignments produced by these models in FIG. 12A. The location of the peak implies the amount of delays between two alignments. It is evident that alignments by a forward (and LC-BGRU) model are 5 (or 4) time-steps later than those by a bidirectional model. Therefore, it seems important to pre-train a model with properly adjusted alignments, e.g., alignments from a bidirectional model are supposed to be delayed for 5 steps to be used in the pre-training of a forward model. However, it is found that for models trained on large datasets, this delay has little impact on the final result (as shown in FIG. 12B). To push this series of experiments to the extreme, a model was pre-trained with random alignments. It was found that most likely alignment as predict by any CTC model was sufficient to achieve improved optimization.

G. Some Experiments

It shall be noted that these experiments and results are provided by way of illustration and were performed under specific conditions using a specific embodiment or embodiments; accordingly, neither these experiments nor their results shall be used to limit the scope of the disclosure of the current patent document.

1. Setup

In all experiments, the dataset is 10,000 hours of labeled speech from a wide variety of sources. In embodiments, the dataset is expanded by noise augmentation—in every epoch, 40% of the utterances are randomly selected and background noise is added. For robustness to reverberant noise encountered in far-field recognition, room impulse response (RIR) augmentation is adopted, in which case, a subset of the data is randomly sampled and each instance is convolved with a random RIR signal. RIRs are collected by emitting a signal from a speaker and capturing the signal, as well as the reverberations from the room, using an linear array of 8 microphones. The speaker is placed in a variety of configurations, ranging from 1 to 3 meters distance and 60 to 120 degrees inclination with respect to the array, for 20 different rooms.

FIG. 13 depicts a comparison between a baseline architecture (left column) and a new model architecture (right column), according to embodiments of the present document.

The model specification and training procedure are the same as a Deep Speech 2 model (by Amodei, et al., Deep speech 2: End-to-end speech recognition in English and Mandarin, arXiv:1512.02595, 2015 and cross-reference to U.S. patent application Ser. No. 15/358,102 (Docket No. 28888-1990), filed on 21 November 2016, entitled “END-TO-END SPEECH RECOGNITION”, and U.S. patent application Ser. No. 15/358,083 (Docket No. 28888-2078), filed on 21 Nov. 2016, entitled “DEPLOYED END-TO-END SPEECH RECOGNITION”, each of which is incorporated by reference herein in its entirety). As shown in FIG. 13, the baseline model (left column) is a deep recurrent neural network with two 2D convolutional input layers, followed by 3 forward Gated Recurrent layers, 2560 cells each, a lookahead convolution layer and one fully connected layer before a softmax layer. The network is trained end-to-end to predict characters using the CTC loss. The configurations of the 2D convolution layers (filters, filter dimensions, channels, stride) are (32, 41×11, 1, 2×2) and (32, 21×11, 32, 2×1). Striding in both time and frequency domains helps reduce computation in the convolution layers. In the convolution and fully-connected layers, batch-normalization is applied before applying nonlinearities (ReLU). Sequence-wise batch-normalization (cross-reference to U.S. patent application Ser. No. 15/358,102 (Docket No. 28888-1990), filed on 21 Nov. 2016, entitled “END-TO-END SPEECH RECOGNITION”, and U.S. patent application Ser. No. 15/358,083 (Docket No. 28888-2078), filed on 21 Nov. 2016, entitled “DEPLOYED END-TO-END SPEECH RECOGNITION”, each of which is incorporated by reference herein in its entirety) is used in the recurrent layers, effectively acting on the affine transformations of the inputs fed into them.

For the baseline model, log spectrogram features are extracted, in 161 bins with a hop size of 10ms and window size of 20ms, and are normalized so that each input feature has zero mean and unit variance. The optimization method used is stochastic gradient descent with Nesterov momentum. Hyperparameters (batch-size=512, learning-rate 7×10⁻⁴, momentum 0.99) are kept the same across different experiments.

FIG. 13 also shows the architecture for the new model (right column). The model comprises a PCEN layer 1305 to process the spectrogram of an audio input, one or more 2D convolutional input layers 1310, followed by a recurrent neural network (RNN) 1315. The RNN comprises one or more Gated Recurrent layers 1320. In embodiments, at least one of the Gated Recurrent layers 1320 is a LC-BGRU layer. Details of the LC-GBRUs are discloses in previous sections, including Section D and FIGS. 4-6. The new model is trained end-to-end to predict characters in the CTC loss layer 1325. The aforementioned CTC, Gram-CTC, and/or alignment training may be implemented for the CTC loss. In embodiments, approaches applicable in the deep speech 2 model, such as striding in time and frequency domains, sequence-wise batch-normalization in the GRU layers and/or convolution layers, are also applicable to the new model.

Table 3 shows the result of the proposed solutions in earlier sections. The results are reported on a sample of the train set as well as a development set. The error rates on the train set are useful to identify over-fitting scenarios, especially since the development set is significantly different from the training distribution in this document as their sources are different.

In Table 3, both character and word error rates (CER/WER) are produced using a greedy max decoding of the output softmax matrix, i.e., taking the most likely symbol at each time step and then removing blanks and repeated characters. However, when a language model is adopted as in the “Dev LM” results, a beam search is used over the combined CTC and LM scores.

2. Some Results of Individual Changes

The first half of Table 3 shows the impact of each of the changes applied individually. All of the techniques proposed help fit the training data better, measured by CER on the train set. The following observations were noticed.

Replacing CTC loss with GramCTC loss achieves a lower WER, while CERs are similar on the train set. This indicates that the loss promotes the model to learn the spelling of words, but completely mis-predicts words when they are not known. This effect results in diminished improvements when the language model is applied.

Applying farfield augmentation on the same sized model results in a worse training error as expected. It shows a marginal improvement on the dev set, even though the dev set has a heavy representation of farfield audio.

The single biggest improvement on the dev set is the addition of the LC-BGRU which closes the gap to bidirectional models by 50%.

Joint (and pre) training with alignment information improves CER on the train set by 25%, high-lighting optimization issues in training CTC models from scratch. However, these models get less of an improvement from language model decoding, indicating their softmax outputs could be overconfident, therefore less amenable to correction by the language model. This phenomenon is observed in all models employing CE training as well as the Bidirectional target model (the model that provides the targets used for CE training).

3. Some Results of Incremental Changes

While the solutions are designed to address distinct issues in the model, it should not be expected every individual improvement to be beneficial when used in combination. As an example, it is seen in the section of optimization that models with bidirectional layers gain very little by using alignment information—clearly, bidirectional layers by themselves address a part of the difficulty in optimizing CTC models. Therefore, addressing the absence of bidirectional layers will also address optimization difficulties and they may not stack up.

It can be seen in the second half of Table 3 that improvements indeed do not stack up. The following 3 interesting models were discussed.

1. The model mix of joint training with 3 increasingly difficult losses (CE, CTC, and GramCTC, Mix-1) achieves the best results on the train set far surpassing the other model mixes, and even nearly matching the performance of models with bidirectional layers on the train set. This model has the smallest gain on the dev set amongst all the mix-models, and puts it in the overfitting regime. It is known that there exists a model that can generalize better than this one, while achieving the same error rates on the train set: the bidirectional baseline. Additionally, this model receives a weak improvement from the language model, which agrees with what was observed with GramCTC and CE training in Section G.2.

2. The model mix of PCEN, LC-BGRU and IR augmentation (Mix-2) performs worse on the train set—additional data augmentation with IR impulses makes the training data harder to fit as what have been seen earlier, but PCEN and LC-BGRU is not sufficient to address this difficulty. However, the model does attain better generalization and performs better on the dev set, and actually surpasses the bidirectional target when using a language model.

3. Mix-3 adds CE joint training which helps to address optimization issues and leads to lower error rates on both the train and dev sets. However, the improvement in dev WER disappears when using a language model, again highlighting the language model integration issues when using CE training.

TABLE 3 Results for both single improvements and incremental improvements to the models Except when using a language mode (Dev LM), reported numbers are computed using greedy max decoding as described in Section G.1. Best results using deployable models are bolded. Train DEV CER WER CER % Rel WER % Rel WER % Rel Baseline 4.38 12.41 11.64 0.00% 28.68 0.00% 18.95 0.00% Individual-changes Baseline + PCEN 3.79 10.90 11.16 4.20% 27.85 2.90% 18.12 4.40% Baseline + 1× LC-BGRU 3.49 10.33 11.06 5.00% 27.03 5.80% 17.47 7.80% Baseline + GramCTC 4.33 10.42 12.03 −3.30% 27.10 5.50% 19.26 −1.70% Baseline + CE pre-training 3.31 9.50 10.84 6.90% 26.39 8.00% 17.89 5.60% Baseline + CE joint-training 3.25 9.58 10.75 7.70% 26.64 7.10% 17.93 5.40% Baseline + Farfield augmentation 5.25 14.59 11.49 1.30% 29.64 −3.30% 18.47 2.50% Incremental-changes Baseline + CE + CTC + GramCTC joint training (Mix-1) 2.97 7.31 10.91 6.30% 24.48 14.60% 17.71 6.5% Baseline + PCEN + 1× LC-BGRU +Farfield augmentation (Mix-2) 5.51 14.10 9.74 16.40% 24.82 13.40% 15.47 18.40% +CE joint training (Mix-3) 3.57 10.50 9.38 19.40% 23.77 17.10% 15.75 16.90% Bidirectional target 2.58 7.47 9.37 19.60% 23.03 19.70% 15.96 15.80%

TABLE 4 A deeper look into the dev set, measuring WER with language model decoding of each model on different slices of the dev set. Serving latency (milliseconds) is the 98^(th) percentile latency on the last packet as described in Section D. Training time is in hours per epoch with the data and infrastructure the same. *This model has twice the number of parameters as the Baseline, and suffers from prohibitively large serving latency. Devsets Baseline Baseline × 2 Mix-3 Clean casual speech 5.90 5.00 5.80 Farfield 35.05 30.60 26.49 Names 19.73 19.30 17.40 Overall 18.46 17.46 15.74 Serving latency 112 25933 153 Training Time 17 29 25

Finally in Table 4, Mix-3 is compared against the baseline model, and its equivalent with twice as many parameters in every layer, on various categories of speech data. Clearly, Mix-3 is significantly better for “farfield” and “Names” speech data, two notably difficult categories for ASR. ASR tasks run into a generalization issue for “Names” categories because they are often required words that is not present in the acoustic training data. Similarly, far field audio is hard to obtain and the models are forced to generalize out of the training data, in this case by making use of augmentation. At the same time, the serving latency of Mix-3 is only slightly higher than baseline model, still good for deployment.

H. Some Results

In this work, multiple sources of bias are identified in end-to-end speech systems which tend to encourage very large neural network structure, thus make deployment impractical. Multiple methods are presented to address these issues, which enable building a model that performs significantly better on the target development set, while still being good for streaming inference.

In embodiments, while the addition of cross entropy alignment training and the GramCTC loss allow models to fit the training and validation data better with respect to the WER of a greedy max decoding, they see much less of a benefit from language modeling integration. In embodiments, using an LC-BRGU layer in place of lookahead convolutions conveys benefits across the board as does use of a PCEN layer at the front end. Finally, generalization to unseen data is improved by the addition of farfield augmentation.

I. System Embodiments

In embodiments, aspects of the present patent document may be directed to, may include, or may be implemented on one or more information handling systems/computing systems. A computing system may include any instrumentality or aggregate of instrumentalities operable to compute, calculate, determine, classify, process, transmit, receive, retrieve, originate, route, switch, store, display, communicate, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data. For example, a computing system may be or may include a personal computer (e.g., laptop), tablet computer, phablet, personal digital assistant (PDA), smart phone, smart watch, smart package, server (e.g., blade server or rack server), a network storage device, camera, or any other suitable device and may vary in size, shape, performance, functionality, and price. The computing system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of memory. Additional components of the computing system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, touchscreen and/or a video display. The computing system may also include one or more buses operable to transmit communications between the various hardware components.

FIG. 14 depicts a simplified block diagram of a computing device/information handling system (or computing system) according to embodiments of the present disclosure. It will be understood that the functionalities shown for system 1400 may operate to support various embodiments of a computing system—although it shall be understood that a computing system may be differently configured and include different components, including having fewer or more components as depicted in FIG. 14.

As illustrated in FIG. 14, the computing system 1400 includes one or more central processing units (CPU) 1401 that provides computing resources and controls the computer. CPU 1401 may be implemented with a microprocessor or the like, and may also include one or more graphics processing units (GPU) 1419 and/or a floating-point coprocessor for mathematical computations. System 1400 may also include a system memory 1402, which may be in the form of random-access memory (RAM), read-only memory (ROM), or both.

A number of controllers and peripheral devices may also be provided, as shown in FIG. 14. An input controller 1403 represents an interface to various input device(s) 1404, such as a keyboard, mouse, touchscreen, and/or stylus. The computing system 1400 may also include a storage controller 1407 for interfacing with one or more storage devices 1408 each of which includes a storage medium such as magnetic tape or disk, or an optical medium that might be used to record programs of instructions for operating systems, utilities, and applications, which may include embodiments of programs that implement various aspects of the present invention. Storage device(s) 1408 may also be used to store processed data or data to be processed in accordance with the invention. The system 1400 may also include a display controller 1409 for providing an interface to a display device 1411, which may be a cathode ray tube (CRT), a thin film transistor (TFT) display, organic light-emitting diode, electroluminescent panel, plasma panel, or other type of display. The computing system 1400 may also include one or more peripheral controllers or interfaces 1405 for one or more peripherals 1406. Example of peripheral may include one or more printers, scanners, input devices, output devices, sensors, and the like. A communications controller 1414 may interface with one or more communication devices 1415, which enables the system 1400 to connect to remote devices through any of a variety of networks including the Internet, a cloud resource (e.g., an Ethernet cloud, an Fiber Channel over Ethernet (FCoE)/Data Center Bridging (DCB) cloud, etc.), a local area network (LAN), a wide area network (WAN), a storage area network (SAN) or through any suitable electromagnetic carrier signals including infrared signals.

In the illustrated system, all major system components may connect to a bus 1416, which may represent more than one physical bus. However, various system components may or may not be in physical proximity to one another. For example, input data and/or output data may be remotely transmitted from one physical location to another. In addition, programs that implement various aspects of the invention may be accessed from a remote location (e.g., a server) over a network. Such data and/or programs may be conveyed through any of a variety of machine-readable medium including, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store or to store and execute program code, such as application specific integrated circuits (ASICs), programmable logic devices (PLDs), flash memory devices, and ROM and RAM devices.

Aspects of the present invention may be encoded upon one or more non-transitory computer-readable media with instructions for one or more processors or processing units to cause steps to be performed. It shall be noted that the one or more non-transitory computer-readable media shall include volatile and non-volatile memory. It shall be noted that alternative implementations are possible, including a hardware implementation or a software/hardware implementation. Hardware-implemented functions may be realized using ASIC(s), programmable arrays, digital signal processing circuitry, or the like. Accordingly, the “means” terms in any claims are intended to cover both software and hardware implementations. Similarly, the term “computer-readable medium or media” as used herein includes software and/or hardware having a program of instructions embodied thereon, or a combination thereof. With these implementation alternatives in mind, it is to be understood that the figures and accompanying description provide the functional information one skilled in the art would require to write program code (i.e., software) and/or to fabricate circuits (i.e., hardware) to perform the processing required.

It shall be noted that embodiments of the present invention may further relate to computer products with a non-transitory, tangible computer-readable medium that have computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind known or available to those having skill in the relevant arts. Examples of tangible computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store or to store and execute program code, such as application specific integrated circuits (ASICs), programmable logic devices (PLDs), flash memory devices, and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher level code that are executed by a computer using an interpreter. Embodiments of the present invention may be implemented in whole or in part as machine-executable instructions that may be in program modules that are executed by a processing device. Examples of program modules include libraries, programs, routines, objects, components, and data structures. In distributed computing environments, program modules may be physically located in settings that are local, remote, or both.

One skilled in the art will recognize no computing system or programming language is critical to the practice of the present invention. One skilled in the art will also recognize that a number of the elements described above may be physically and/or functionally separated into sub-modules or combined together.

It will be appreciated to those skilled in the art that the preceding examples and embodiments are exemplary and not limiting to the scope of the present disclosure. It is intended that all permutations, enhancements, equivalents, combinations, and improvements thereto that are apparent to those skilled in the art upon a reading of the specification and a study of the drawings are included within the true spirit and scope of the present disclosure. It shall also be noted that elements of any claims may be arranged differently including having multiple dependencies, configurations, and combinations. 

What is claimed is:
 1. A computer-implemented method for automatic speech recognition comprising: receiving an input audio comprising a plurality of utterances; generating a set of spectrogram frames for each utterance; for each of a set of utterances: dividing the utterance into a plurality of overlapping chunks; processing the utterance sequentially in forward recurrences in a recurrent neural network (RNN); processing the plurality of chunks in back recurrences in the RNN; and using hidden states of the backward recurrences obtained from each chunk to calculate a final output of the RNN.
 2. The computer-implemented method of claim 1 wherein the plurality of chunks are divided uniformly with each chunk corresponding to a fixed context size.
 3. The computer-implemented method of claim 1 wherein each chunk is processed independently in back recurrences.
 4. The computer-implemented method of claim 1 wherein the hidden-states of the backward recurrences are reset between each chunk.
 5. The computer-implemented method of claim 1 wherein the RNN comprises one or more one or more gated recurrent unit (GRU) layers.
 6. The computer-implemented method of claim 5 wherein the one or more one or more gated recurrent layers comprise at least one Latency Constrained Bidirectional GRU (LC-BGRU) layer to process the plurality of chunks in back recurrences.
 7. The computer-implemented method of claim 1 wherein the set of spectrogram frames for each utterance are obtained after implementing a trainable per-channel energy normalization (PCEN).
 8. The computer-implemented method of claim 1 further comprising: training the RNN with a cross-entropy (CE) loss for one or more epochs; and training the RNN by implementing a Gram Connectionist Temporal Classification (Gram-CTC) loss function in a CTC cost layer using the final output of the RNN.
 9. The computer-implemented method of claim 1 wherein the Gram-CTC loss function automatically selects useful grams from a pre-specified set and decomposes an input utterance with the selected grams.
 10. The computer-implemented method of claim 10 wherein the pre-specified set comprises all uni-grams and selected bi-grams and tri-grams.
 11. A computer-implemented method for training a recurrent neural network (RNN) model for speech transcription, the method comprising: inputting a plurality of utterance from a training set to the RNN model, the RNN model comprising one or more convolutional layers and one or more bidirectional recurrent layers; generating a set of spectrogram frames for each utterance by implementing a trainable per-channel energy normalization (PCEN); processing each of the set of utterances in forward recurrences and in back recurrences to obtain a final output of the RNN; and training the RNN with the final output in a Connectionist Temporal Classification (CTC) cost layer.
 12. The computer-implemented method of claim 11 wherein the one or more bidirectional recurrent layers are gated recurrent unit (GRU) layers.
 13. The computer-implemented method of claim 12 wherein the GRU layers comprise at least one Latency Constrained Bidirectional GRU (LC-BGRU) layer.
 14. The computer-implemented method of claim 11 wherein the RNN is trained simultaneously using a weighted combination of a CTC loss and a cross-entropy (CE) loss.
 15. The computer-implemented method of claim 14 wherein the CTC loss and the CE loss has equal weight.
 16. A computer-implemented method for speech transcription with a recurrent neural network (RNN), the method comprising: receiving a set of spectrogram frames correspond to an utterance, dividing the utterance into a plurality of overlapping chunks, each chunk corresponding to a fixed context size; processing the set of spectrogram frames of the utterance sequentially in forward recurrences in one or more gated recurrent unit (GRU) layers within the RNN; processing each of the plurality of chunks in back recurrences in the one or more GRU layers to obtain a plurality of hidden states; and using the obtained hidden states to calculate a final output of the RNN.
 17. The computer-implemented method of claim 16 wherein the plurality of overlapping chunks are divided uniformly.
 18. The computer-implemented method of claim 16 wherein each of the plurality of chunks is processed independently in back recurrences with hidden states reset between each chunk.
 19. The computer-implemented method of claim 16 wherein the RNN is pre-trained using alignment information.
 20. The computer-implemented method of claim 16 wherein the RNN is trained simultaneously using a weighted combination of a Connectionist Temporal Classification (CTC) loss and a cross-entropy (CE) loss. 